package com.quanyan.runningriding.service;


import com.quanyan.api.APIResponse;
import com.quanyan.common.Plugin.PageObj;
import com.quanyan.runningriding.entity.vo.run.req.AnnualMileageVo;
import com.quanyan.runningriding.entity.vo.run.req.RunRecordVo;
import com.quanyan.runningriding.entity.vo.run.req.RunUserVo;
import com.quanyan.runningriding.entity.vo.run.resp.*;

import java.util.List;


/**
 * 跑步记录服务
 * RunRecordService
 *
 * @author Tu Chun
 * @date 2016/8/23
 */
public interface RunRecordService {
    @Deprecated
    APIResponse<?> login(RunUserVo runUserVo);

    /**
     * 插入跑步记录
     *
     * @param runRecordVo
     * @return
     */
    Integer insertRunRecord(RunRecordVo runRecordVo);

    /**
     * 获取用户月里程
     *
     * @param userId
     * @return
     */
    APIResponse<MonthMileageVo> getMonthMileage(String userId);

    /**
     * 获取用户总的里程数
     *
     * @param userId
     * @return
     */
    APIResponse<TotalMileage> getTotalMileage(String userId);

    /**
     * 获取用户年度里程数
     *
     * @param annualMileageVo
     * @return
     */
    PageObj<AnnualMileage> getAnnualMileage(AnnualMileageVo annualMileageVo);

    /**
     * 追踪显示
     *
     * @param runRecordId
     * @return
     */
    APIResponse<RunTrackDetail> trackDisplay(Integer runRecordId);

    /**
     * 跑步记录详情
     *
     * @param runRecordId
     * @return
     */
    APIResponse<RunRecordDetail> runRecordDetails(Integer runRecordId);

    /**
     * 跑步记录图表详情
     *
     * @param runRecordId
     * @return
     */
    APIResponse<ChartDetail> chartDetails(Integer runRecordId);

    /**
     * 批量插入跑步记录
     *
     * @param runRecordVos
     * @return
     */
    APIResponse<?> batchSynchroniseRunRecord(List<RunRecordVo> runRecordVos);
}
